package cn.wolfcode.wolf2w.note.service;

import cn.wolfcode.wolf2w.note.api.domain.Note;
import cn.wolfcode.wolf2w.note.api.domain.NoteContent;
import cn.wolfcode.wolf2w.note.query.NoteQuery;
import cn.wolfcode.wolf2w.note.vo.AuditVO;
import cn.wolfcode.wolf2w.note.vo.NoteVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * 旅游日记Service接口
 * 
 * @author dalang
 * @date 2023-11-26
 */
public interface INoteService extends IService<Note>{
    /**
    * 分页
    * @param qo
    * @return
    */
    IPage<Note> queryPage(NoteQuery qo);

    NoteContent getContent(Long id);

    void audit(AuditVO vo);

    List<Note> viewnnumTop3(Long destId);

    Map<String, Object> viewnumIncr(Long nid);
    Map<String, Object> replynumIncr(Long nid);
    Map<String, Object> sharenumIncr(Long nid);

    Map<String, Object> favor(Long nid);
    Boolean isUserFavor(Long nid, Long uid);
    Map<String,Object> thumbsup(Long nid);
    boolean addNote(Note note);
    String initNoteHash(Long nid);

    List<Note> getByUid(Long uid);

    IPage<Note> queryBySelf(NoteQuery qo);
}
